1. Field of the Invention
The present invention relates to a controller for controlling a machine, and more particularly, to a controller suitable for controlling a machine such as a parallel mechanism machine in which at least one drive axis is driven in a direction other than directions of axes of a rectangular coordinate system.
2. Description of Related Art
In a controller such as a numerical controller for controlling a parallel mechanism machine tool or other machine that has prallelly operating drive axes driven in directions other than direction of axes of a rectangular coordinate system, a command given in the rectangular coordinate system is converted into a command to actuate the drive axes, so as to control the position and orientation of a movable member to which a tool is attached.
By way of example, in the case of a parallel mechanism machine tool shown in FIG. 8, drive axes U1–U6 are immovable in axis directions of an XYZ rectangular coordinate system. This parallel mechanism machine tool includes a stationary member 20 provided with six fulcrums 21–26 individually connected through the drive axes U1–U6 to six fulcrums 31–36 provided in a movable member 30. By means of drive components such as servomotors accommodated in the drive axes U1–U6, distances between corresponding fulcrums are expanded or contracted as desired to control the position and orientation of the movable member 30, whereby the position and orientation of a tool 40 attached to a main axis provided in the movable member 30 are controlled.
Since the coordinates of the fulcrums 21–26 of the stationary member 20 are fixed, if the coordinates of the fulcrums 31–36 corresponding to the desired position and orientation of the movable member 30 (tool 40) have once been determined, it is possible to determine the lengths of the drive axes U1–U6 from the coordinates of the fulcrums 31–36 of the movable member 30. Therefore, by drivingly controlling the drive components such as servomotors in a manner that the drive axes U1–U6 have the determined lengths, the movable member 30 and the tool 40 can be moved to have the desired positions and orientations for machining.
In the case of using a numerical controller or other controller to control the parallel mechanism machine tool, a command in a rectangular coordinate system (command for tool position) is converted into amounts of expansion or contraction of the drive axes U1–U6 with which the positions and orientations of the movable member 30 and the tool 40 are controlled.
For example, there is known a numerical controller (see, JP 2001-34314A) in which, by means of a function generator, interpolated coordinates of X, Y and Z axes of a rectangular coordinate system and interpolated coordinates of rotation axes A, B and C around the X, Y and Z axes are determined from a program command and subject to acceleration/deceleration processing, and by means of an inverse kinematics transformation section, the lengths of the drive axes U1–U6 are determined from those coordinates (X′, Y′, Z′, A′, B′, C′) of the rectangular coordinate system which have been subjected to the acceleration/deceleration processing. Then, the drive components for the drive axes U1–U6 are actuated.
However, the motion velocities of the drive axes U1–U6 (length-changing velocities) determined based on motion commands for the axes U1–U6 obtained by the transformation of a command given in a rectangular coordinate system can sometimes exceed the maximum allowable velocities depending on the motion direction and motion velocity of the movable member 30 (tool 40). To obviate this, another controller is known (see, JP 2001-92508A), in which the velocities of the drive axes in a rectangular coordinate system are determined while limiting them so as not to exceed allowable velocities, and the determined velocities are interpolated in the rectangular coordinate system. Thereafter, motion commands for the drive axes U1–U6 are determined in an inverse kinematics transformation section.
A method is also known which interpolates a program command in two steps, although this method is not relevant to a numerical controller to control a parallel mechanism machine tool. Specifically, a motion path commanded in the program is interpolated at a first sampling period so as to determine first interpolation points which are further interpolated at a second sampling period shorter than the first sampling period, to be used to drivingly control the drive axes. In this case, the motion velocities of the drive axes can suddenly change near the first interpolation points. To obviate this, a further invention is known (see, JP 11-149306A and JP 3034843B) which performs the second interpolation using a smooth curve and performs acceleration/deceleration control after making the first interpolation, thereby smoothing the change in velocity.
When the acceleration/deceleration processing is performed after making the interpolation for the axes based on a command from a program or the like, however, a path error is inevitably caused by a delay in acceleration/deceleration. For example, with the invention disclosed in JP 2001-34314A wherein the inverse kinematics transformation is performed and the drive axes are actuated after making the function generation, that is, after making the acceleration/deceleration for the interpolated commands for respective axes of the rectangular coordinate system, an error is inevitably caused by the acceleration/deceleration because the acceleration/deceleration is implemented after the interpolation.
With the invention disclosed in JP 2001-92508A, the feed velocity in the rectangular coordinate system is controlled in a manner that the allowable velocity of the drive axes of the parallel mechanism machine tool is not exceeded, however, the velocity cannot be controlled so as not to exceed allowable values of acceleration and jerk which is the time derivative of acceleration. Furthermore, cumbersome control must be made, requiring that the numerical controller be equipped with a processor having high capability to execute such control.